package zhouyang;

import org.openjdk.jol.info.ClassLayout;

public class MyObject {
    public static void main(String[] args) {
//        noLock();
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        Object o = new Object();
    synchronized (o){
        System.out.println("原来的线程"+ClassLayout.parseInstance(o).toPrintable());
    }
    new Thread(()->{
        synchronized (o){
            System.out.println("新线程："+ClassLayout.parseInstance(o).toPrintable());
        }
    },"t1").start();
    }
    private static void noLock() {
        Object o = new Object();
        System.out.println("十进制："+o.hashCode());//10进制 1625635731
        System.out.println("十六进制："+Integer.toHexString(o.hashCode()));//16进制 60e53b93
        System.out.println("2进制："+Integer.toBinaryString(o.hashCode()));//2进制 1100000111001010011101110010011
        System.out.println(ClassLayout.parseInstance(o).toPrintable());
//        01100000 11100101 00111011 10010011 这一行的数据是16进制60e53b93 对应的数据，上面那一行打印出来的结果 中包含 60e53b93对应的二进制数
//         1100000 11100101 00111011 10010011 此处以31位二进制保存hashcode，差一位，补0后为上一行记录，也就是value中的记录
    }
}
